package oo03;

public class UploadDemo {
    public static void main(String[] args) {
        Aoo o1 = new Aoo();
        o1.a=1;
        o1.show();
        /*o1.b=2;//超类不能访问派生类的成员变量
        o1.test();//超类不能访问派生类的方法*/
        //派生类可以访问超类的成员变量和方法
        Boo o2 = new Boo();
        o2.b=1;
        o2.test();
        o2.a=22;//Aoo定义的成员变量,被派生类访问
        o2.show();//Aoo定义的方法,可以 被派生类访问
        //继承具有传递性
        Coo coo = new Coo();
        coo.d=22;//coo访问爷爷Aoo的成员变量
        coo.show();//coo访问爷爷Aoo的方法
        coo.b=2;//coo访问爸爸的成员变量
        coo.c=33;//coo可以访问自己的成员变量;

    }
}
class Aoo{
    Aoo(){
        System.out.println("I am Aoo");
    }
    int a;
    int d;
    void show(){}
}
//extends 类的继承;这里Aoo是超类,Boo是派生类
class Boo extends Aoo{
    Boo(){
        System.out.println("I am Boo");
    }
    void test(){}
    int b;
}
class Coo extends Boo{
    Coo(){
        System.out.println("i am coo");
    }
    int c;
    int a;
    void test2(){
        a=25;//当成员变量名称相同时,就近原则,为本类的成员变量
    }
}
